package paidaxing.blog.core.service;

import paidaxing.blog.core.dto.VisitStatDTO;
import paidaxing.blog.core.dto.SystemOverviewDTO;
import java.util.Date;
import java.util.List;

public interface VisitStatsService {
    /**
     * 获取系统统计概览
     *
     * @return 系统统计概览DTO
     */
    SystemOverviewDTO getSystemOverview();

    /**
     * 获取访问统计数据
     *
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return 访问统计列表
     */
    List<VisitStatDTO> getVisitStatsByDateRange(Date startDate, Date endDate);

    /**
     * 获取文章访问统计数据
     *
     * @param postId 文章ID
     * @return 访问统计列表
     */
    List<VisitStatDTO> getVisitStatsByPostId(Long postId);

    /**
     * 记录访问数据
     *
     * @param postId 文章ID
     * @return 是否成功
     */
    boolean recordVisit(Long postId);

    /**
     * 获取总访问量
     *
     * @return 总访问量
     */
    Integer getTotalVisits();

    /**
     * 获取今日访问量
     *
     * @return 今日访问量
     */
    Integer getTodayVisits();
}